package com.mlming.springboot.config;

import lombok.Data;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "redisson.addr.single-addr")
@Data
public class RedissonConfig {

    private String host;
    /**
     * 在@Configuration修饰的配置类里面使用@Bean修饰的方法:
     * @Bean表示:
     *      该方法是一个返回一个对象的方法,随后该对象会交由Spring容器进行管理,其他地方可以获取该Bean对象
     *      该对象和其他的类上注解@Service,@Controller等一样,都是有且只有一次,在Spring启动时进行对象的创建与托管
     *      该对象就是该方法的返回值, 该对象的名称就是该方法的方法名
     */
    @Bean
    public RedissonClient redissonClient() {
        Config config = new Config();
        config.useSingleServer().setAddress(host);
        return Redisson.create(config);
    }
}
